package com.fate.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fate.domain.ProdTag;
import com.fate.service.ProdTagService;
import com.fate.vo.ProdTagVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.method.P;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("prod/prodTag")
@Api(tags = "商品标签分组管理")
public class ProdTagController {

    @Autowired
    private ProdTagService prodTagService;

    @GetMapping("page")
    @ApiOperation("分页查询商品标签分组")
    @PreAuthorize("hasAuthority('prod:prodTag:page')")
    public ResponseEntity<Page<ProdTag>> findProdTagPage(Page<ProdTag>page, ProdTag prodTag){
         Page<ProdTag> prodTagPage =  prodTagService.findProdTag(page ,prodTag);
        return ResponseEntity.ok(prodTagPage);
    }

    /**
     * 新增标签分组
     *
     * @param prodTag
     * @return
     */
    @GetMapping("add")
    @ApiOperation("新增标签")
    @PreAuthorize("hasAuthority('prod:prodTag:save')")
    public ResponseEntity<Void> addProdTag(@RequestBody ProdTag prodTag){
         prodTagService.save(prodTag);

        return  ResponseEntity.ok().build();
    }

    /**
     * 全查询标签分组
     */
    @GetMapping("listTagList")
    @ApiOperation("全查询标签分组")
    @PreAuthorize("hasAuthority('prod:prodTag:page')")
    public ResponseEntity<List<ProdTag>> listTagList(){
        List<ProdTag> list = prodTagService.list();
        return ResponseEntity.ok(list);
    }

    //-------前台接口
    @GetMapping("prodTagList")
    @ApiOperation("查询前台签分组")
    public ResponseEntity<List<ProdTagVo>>loadFrontTag(){
          List<ProdTagVo> prodTagVos = prodTagService.loadFrontTag();
          return ResponseEntity.ok(prodTagVos);
    }

}
